<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>eRPC Generator (erpcgen): erpcgen::ErpcLexer Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="nxp_logo_small.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">eRPC Generator (erpcgen)
   &#160;<span id="projectnumber">Rev. 1.7.4</span>
   </div>
   <div id="projectbrief">NXP Semiconductors</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classerpcgen_1_1_erpc_lexer.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="classerpcgen_1_1_erpc_lexer-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">erpcgen::ErpcLexer Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Lexical scanner class for erpcgen interface files.  
 <a href="classerpcgen_1_1_erpc_lexer.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="_erpc_lexer_8h_source.html">ErpcLexer.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for erpcgen::ErpcLexer:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classerpcgen_1_1_erpc_lexer.png" usemap="#erpcgen::ErpcLexer_map" alt=""/>
  <map id="erpcgen::ErpcLexer_map" name="erpcgen::ErpcLexer_map">
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ac127a3e324953c44292eab064b6d4df1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classerpcgen_1_1_erpc_lexer.html#ac127a3e324953c44292eab064b6d4df1">ErpcLexer</a> (const char *inputFile)</td></tr>
<tr class="memdesc:ac127a3e324953c44292eab064b6d4df1"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is constructor of <a class="el" href="classerpcgen_1_1_erpc_lexer.html" title="Lexical scanner class for erpcgen interface files. ">ErpcLexer</a> class.  <a href="#ac127a3e324953c44292eab064b6d4df1">More...</a><br /></td></tr>
<tr class="separator:ac127a3e324953c44292eab064b6d4df1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a087eb9c830768214b4c8875b8ffeb8b7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a087eb9c830768214b4c8875b8ffeb8b7"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classerpcgen_1_1_erpc_lexer.html#a087eb9c830768214b4c8875b8ffeb8b7">~ErpcLexer</a> ()</td></tr>
<tr class="memdesc:a087eb9c830768214b4c8875b8ffeb8b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is destructor of <a class="el" href="classerpcgen_1_1_erpc_lexer.html" title="Lexical scanner class for erpcgen interface files. ">ErpcLexer</a> class. <br /></td></tr>
<tr class="separator:a087eb9c830768214b4c8875b8ffeb8b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a25505498563ccb947e7b9c4be3fc4f21"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classerpcgen_1_1_token.html">Token</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classerpcgen_1_1_erpc_lexer.html#a25505498563ccb947e7b9c4be3fc4f21">getNextToken</a> ()</td></tr>
<tr class="memdesc:a25505498563ccb947e7b9c4be3fc4f21"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function returns next <a class="el" href="classerpcgen_1_1_token.html" title="Encapsulates all information about a token. ">Token</a> from flex lexer.  <a href="#a25505498563ccb947e7b9c4be3fc4f21">More...</a><br /></td></tr>
<tr class="separator:a25505498563ccb947e7b9c4be3fc4f21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a3eb417b005dfbfc8336531d077c5b7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structerpcgen_1_1token__loc__t.html">token_loc_t</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classerpcgen_1_1_erpc_lexer.html#a9a3eb417b005dfbfc8336531d077c5b7">getLocation</a> ()</td></tr>
<tr class="memdesc:a9a3eb417b005dfbfc8336531d077c5b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns the current token's location in <em>loc</em>.  <a href="#a9a3eb417b005dfbfc8336531d077c5b7">More...</a><br /></td></tr>
<tr class="separator:a9a3eb417b005dfbfc8336531d077c5b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae3c5882168243d9e3a48ad26596cd74e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classerpcgen_1_1_erpc_lexer.html#ae3c5882168243d9e3a48ad26596cd74e">pushFile</a> (const std::string &amp;fileName)</td></tr>
<tr class="memdesc:ae3c5882168243d9e3a48ad26596cd74e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Suspend actual and give new file to flex.  <a href="#ae3c5882168243d9e3a48ad26596cd74e">More...</a><br /></td></tr>
<tr class="separator:ae3c5882168243d9e3a48ad26596cd74e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc8c84b874e57baa2c68f927b34ff40a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adc8c84b874e57baa2c68f927b34ff40a"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classerpcgen_1_1_erpc_lexer.html#adc8c84b874e57baa2c68f927b34ff40a">popFile</a> ()</td></tr>
<tr class="memdesc:adc8c84b874e57baa2c68f927b34ff40a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Give suspended file to flex. <br /></td></tr>
<tr class="separator:adc8c84b874e57baa2c68f927b34ff40a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a73c80263e93bd44e21b47a5d05a83ec3"><td class="memItemLeft" align="right" valign="top">std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classerpcgen_1_1_erpc_lexer.html#a73c80263e93bd44e21b47a5d05a83ec3">getFileName</a> ()</td></tr>
<tr class="memdesc:a73c80263e93bd44e21b47a5d05a83ec3"><td class="mdescLeft">&#160;</td><td class="mdescRight">return current file name  <a href="#a73c80263e93bd44e21b47a5d05a83ec3">More...</a><br /></td></tr>
<tr class="separator:a73c80263e93bd44e21b47a5d05a83ec3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a366677220c0e46869acfb8c0cae9d33c"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classerpcgen_1_1_erpc_lexer.html#a366677220c0e46869acfb8c0cae9d33c">getIdlCrc16</a> ()</td></tr>
<tr class="memdesc:a366677220c0e46869acfb8c0cae9d33c"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function returns crc16 of all used IDL files.  <a href="#a366677220c0e46869acfb8c0cae9d33c">More...</a><br /></td></tr>
<tr class="separator:a366677220c0e46869acfb8c0cae9d33c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a338869e4a1e345fbee1a70ec79302714"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classerpcgen_1_1_erpc_lexer.html#a338869e4a1e345fbee1a70ec79302714">LexerError</a> (const char *msg)</td></tr>
<tr class="memdesc:a338869e4a1e345fbee1a70ec79302714"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function thrown <a class="el" href="classerpcgen_1_1lexical__error.html" title="Exception class for lexical errors. ">lexical_error</a> with given message.  <a href="#a338869e4a1e345fbee1a70ec79302714">More...</a><br /></td></tr>
<tr class="separator:a338869e4a1e345fbee1a70ec79302714"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:affd9d9a0405e5c6c02bc54eb7663b87a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classerpcgen_1_1_erpc_lexer.html#affd9d9a0405e5c6c02bc54eb7663b87a">processStringEscapes</a> (const char *in, char *out)</td></tr>
<tr class="memdesc:affd9d9a0405e5c6c02bc54eb7663b87a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads the <em>in</em> string and writes to the <em>out</em> string.  <a href="#affd9d9a0405e5c6c02bc54eb7663b87a">More...</a><br /></td></tr>
<tr class="separator:affd9d9a0405e5c6c02bc54eb7663b87a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b35670d07fbd708db666fd177fa6458"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classerpcgen_1_1_erpc_lexer.html#a9b35670d07fbd708db666fd177fa6458">yylex</a> ()</td></tr>
<tr class="memdesc:a9b35670d07fbd708db666fd177fa6458"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal lexer interface.  <a href="#a9b35670d07fbd708db666fd177fa6458">More...</a><br /></td></tr>
<tr class="separator:a9b35670d07fbd708db666fd177fa6458"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6fb76e9aeb0ed25c8dfd4f8ea3f75756"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classerpcgen_1_1_current_file_info.html">CurrentFileInfo</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classerpcgen_1_1_erpc_lexer.html#a6fb76e9aeb0ed25c8dfd4f8ea3f75756">openFile</a> (const std::string &amp;fileName)</td></tr>
<tr class="memdesc:a6fb76e9aeb0ed25c8dfd4f8ea3f75756"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function open file.  <a href="#a6fb76e9aeb0ed25c8dfd4f8ea3f75756">More...</a><br /></td></tr>
<tr class="separator:a6fb76e9aeb0ed25c8dfd4f8ea3f75756"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:af510cae07be3fa08dbec1f74e7cddc60"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_value.html">Value</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classerpcgen_1_1_erpc_lexer.html#af510cae07be3fa08dbec1f74e7cddc60">m_value</a></td></tr>
<tr class="separator:af510cae07be3fa08dbec1f74e7cddc60"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab699271585e90c722d716c6f83bf77f0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structerpcgen_1_1token__loc__t.html">token_loc_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classerpcgen_1_1_erpc_lexer.html#ab699271585e90c722d716c6f83bf77f0">m_location</a></td></tr>
<tr class="separator:ab699271585e90c722d716c6f83bf77f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abed11cfe3f63d5a3656b4b59557f8d55"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classerpcgen_1_1_current_file_info.html">CurrentFileInfo</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classerpcgen_1_1_erpc_lexer.html#abed11cfe3f63d5a3656b4b59557f8d55">m_currentFileInfo</a></td></tr>
<tr class="separator:abed11cfe3f63d5a3656b4b59557f8d55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa472ea6784ccf527950fa1ed8d8b91c8"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classerpcgen_1_1_erpc_lexer.html#aa472ea6784ccf527950fa1ed8d8b91c8">m_indents</a></td></tr>
<tr class="separator:aa472ea6784ccf527950fa1ed8d8b91c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97f0b9422598df55f0d81d80d1ec7da6"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classerpcgen_1_1_erpc_lexer.html#a97f0b9422598df55f0d81d80d1ec7da6">m_idlCrc16</a></td></tr>
<tr class="separator:a97f0b9422598df55f0d81d80d1ec7da6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Lexical scanner class for erpcgen interface files. </p>
<p>This class is a subclass of the standard C++ lexer class produced by Flex. It's primary purpose is to provide a clean way to report values for symbols, without using the yylval global. This is necessary because the parser produced by Bison is a "pure" parser. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="ac127a3e324953c44292eab064b6d4df1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ErpcLexer::ErpcLexer </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>inputFile</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is constructor of <a class="el" href="classerpcgen_1_1_erpc_lexer.html" title="Lexical scanner class for erpcgen interface files. ">ErpcLexer</a> class. </p>
<p>This function set given file for flex lexer.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">inputFile</td><td>This variable contains file name and can contains also path to file. File is given to flex lexical analysis. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a73c80263e93bd44e21b47a5d05a83ec3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::string&amp; erpcgen::ErpcLexer::getFileName </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>return current file name </p>
<dl class="section return"><dt>Returns</dt><dd>Current file name. </dd></dl>

</div>
</div>
<a class="anchor" id="a366677220c0e46869acfb8c0cae9d33c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">uint16_t erpcgen::ErpcLexer::getIdlCrc16 </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>This function returns crc16 of all used IDL files. </p>
<dl class="section return"><dt>Returns</dt><dd>Crc16 of all used IDL files. </dd></dl>

</div>
</div>
<a class="anchor" id="a9a3eb417b005dfbfc8336531d077c5b7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structerpcgen_1_1token__loc__t.html">token_loc_t</a>&amp; erpcgen::ErpcLexer::getLocation </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>returns the current token's location in <em>loc</em>. </p>
<dl class="section return"><dt>Returns</dt><dd>Current token's location. </dd></dl>

</div>
</div>
<a class="anchor" id="a25505498563ccb947e7b9c4be3fc4f21"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classerpcgen_1_1_token.html">Token</a> * ErpcLexer::getNextToken </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>This function returns next <a class="el" href="classerpcgen_1_1_token.html" title="Encapsulates all information about a token. ">Token</a> from flex lexer. </p>
<dl class="section return"><dt>Returns</dt><dd>A newly allocated <a class="el" href="classerpcgen_1_1_token.html" title="Encapsulates all information about a token. ">Token</a> object. Ownership of this token is passed to the caller, who is responsible for its deallocation. If the end of input is reached, NULL is returned instead. </dd></dl>

</div>
</div>
<a class="anchor" id="a338869e4a1e345fbee1a70ec79302714"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ErpcLexer::LexerError </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>msg</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>This function thrown <a class="el" href="classerpcgen_1_1lexical__error.html" title="Exception class for lexical errors. ">lexical_error</a> with given message. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">msg</td><td>Message, which is showed, when this functions is called.</td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="classerpcgen_1_1lexical__error.html" title="Exception class for lexical errors. ">lexical_error</a></td><td>Thrown always, when function is called. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a6fb76e9aeb0ed25c8dfd4f8ea3f75756"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classerpcgen_1_1_current_file_info.html">CurrentFileInfo</a> * ErpcLexer::openFile </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>fileName</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>This function open file. </p>
<p>This function will try find and open file, which is given be file name variable. When file is found and opened new current file info object is created.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">fileName</td><td>File name, which can contains also path to file, which is given to flex lexical analysis.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>return new current file info object if file is found and opened.</dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">std::runtime_error</td><td>Thrown if file is not found. </td></tr>
    <tr><td class="paramname">std::runtime_error</td><td>Thrown if file can not open. </td></tr>
    <tr><td class="paramname">std::runtime_error</td><td>Thrown if can not create ifstream object from file. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="affd9d9a0405e5c6c02bc54eb7663b87a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int ErpcLexer::processStringEscapes </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>in</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>out</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Reads the <em>in</em> string and writes to the <em>out</em> string. </p>
<p>These strings can be the same string since the read head is always in front of the write head.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">in</td><td>Input string containing C-style escape sequences. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">out</td><td>Output string. All escape sequences in the input string have been converted to the actual characters. May point to the same string as <em>in</em>.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The length of the resulting <em>out</em> string. This length is necessary because the string may have contained escape sequences that inserted null characters. </dd></dl>

</div>
</div>
<a class="anchor" id="ae3c5882168243d9e3a48ad26596cd74e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ErpcLexer::pushFile </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>fileName</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Suspend actual and give new file to flex. </p>
<p>This function set to flex lexer new file, when import file request is inside parsed file.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">fileName</td><td>File name, which can contains also path to file, which is given to flex lexical analysis. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a9b35670d07fbd708db666fd177fa6458"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual int erpcgen::ErpcLexer::yylex </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Internal lexer interface. </p>
<dl class="section return"><dt>Returns</dt><dd>returns one token. </dd></dl>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="abed11cfe3f63d5a3656b4b59557f8d55"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classerpcgen_1_1_current_file_info.html">CurrentFileInfo</a>* erpcgen::ErpcLexer::m_currentFileInfo</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Pointer to current file info. </p>

</div>
</div>
<a class="anchor" id="a97f0b9422598df55f0d81d80d1ec7da6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">uint16_t erpcgen::ErpcLexer::m_idlCrc16</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Crc16 of IDL files. </p>

</div>
</div>
<a class="anchor" id="aa472ea6784ccf527950fa1ed8d8b91c8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t erpcgen::ErpcLexer::m_indents</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>How much indents can be removed from newlines in doxygen comments. </p>

</div>
</div>
<a class="anchor" id="ab699271585e90c722d716c6f83bf77f0"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structerpcgen_1_1token__loc__t.html">token_loc_t</a> erpcgen::ErpcLexer::m_location</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Location for the current token. </p>

</div>
</div>
<a class="anchor" id="af510cae07be3fa08dbec1f74e7cddc60"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_value.html">Value</a>* erpcgen::ErpcLexer::m_value</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="class_value.html" title="Abstract base class for values of arbitrary types. ">Value</a> for the current token. </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="_erpc_lexer_8h_source.html">ErpcLexer.h</a></li>
<li>ErpcLexer.cpp</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.5-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul class="foot">
    <li class="footer">Copyright 2016-2020 NXP Semiconductors. All rights reserved.
    </li>
  </ul>
</div>
</body>
</html>
